home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48_1 / pubdom.tar / pubdom / e_vogel / vftobj < prev   
Text File  |  1990-05-20  |  3KB  |  42 lines

  1. %%HP: T(3)A(D)F(.);                        @ VFTOBJ: verify that two arguments
  2.                                            @ are both unit objects containing
  3.                                            @ only pure temperature units.
  4.                                            @ Object examination approach.
  5. \<<                                        @ obj2 obj1 ->
  6.   IF                                       @ obj2 obj1 obj2 obj1 ->
  7.     DUP2                                   @ obj2 obj1 obj2 obj1 ->
  8.     TYPE 13 SAME                           @ obj1 unit object?
  9.                                            @ obj2 obj1 obj2 T/F ->
  10.     SWAP TYPE 13 SAME                      @ obj2 unit object?
  11.                                            @ obj2 obj1 T/F T/F ->
  12.     AND                                    @ Both unit objects?
  13.                                            @ obj2 obj1 T/F ->
  14.   THEN                                     @ Both unit objects
  15.                                            @ obj2 obj1 ->
  16.     DUP2                                   @ obj2 obj1 obj2 obj1 ->
  17.     UBASE                                  @ Make into base units
  18.                                            @ obj2 obj1 obj2 ubobj1 ->
  19.     OBJ\->                                 @ obj2 obj1 obj2 nbobj1 ubobj1 ->
  20.     SWAP DROP                              @ obj2 obj1 obj2 ubobj1 ->
  21.     SWAP                                   @ obj2 obj1 ubobj1 obj2 ->
  22.     UBASE                                  @ Make into base units
  23.                                            @ obj2 obj1 ubobj1 ubobj2 ->
  24.     OBJ\->                                 @ obj2 obj1 ubobj1 nbobj2 ubobj2 ->
  25.     SWAP DROP                              @ obj2 obj1 ubobj1 ubobj2 ->
  26.     OVER                                   @ obj2 obj1 ubobj1 ubobj2 ubobj1 ->
  27.     ==                                     @ Same dimensions?
  28.                                            @ obj2 obj1 ubobj1 T/F ->
  29.     SWAP 1_K ==                            @ Pure temperature?
  30.                                            @ obj2 obj1 T/F T/F ->
  31.     AND                                    @ Both pure temperatures?
  32.                                            @ obj2 obj1 T/F ->
  33.     IF                                     @ Both pure temperatures
  34.     THEN                                   
  35.     ELSE                                   @ Both not pure temperatures
  36.       #B02h DOERR                          @ Error: Inconsistent Units
  37.     END                                    @ obj2 obj1 ->
  38.   ELSE                                     @ Both not unit objects
  39.     #202h DOERR                            @ Error: Bad Argument Type
  40.   END                                      
  41. \>>
  42.